In data transmission systems, a transmitter transmits data packets, to an intended receiver via a path which may include, for example, a packet network, in which each data packet is associated with a respective sequence number. Periodically, the receiver transmits to the transmitter a control packet containing information identifying those data packets that were received correctly. Such information could be in the form of a bit map, in which the order of the bits corresponds with the order of the sequence numbers of data packets that were received correctly, incorrectly or not at all at the receiver. (Typically, the length of the bit map is large to cover a large range of sequence numbers.)
Upon receipt of the control packet, the transmitter retransmits those numbered packets which the receiver identified in the bit map as being received incorrectly or not at all. However, in a data transmission system operating at high data rates and having an appreciable propagation delay, e.g., 50 milliseconds, between the transmitter and receiver, such packet retransmissions could result in multiple retransmissions of such packet(s), and may occur even though the first retransmission of the packet(s) may have been received correctly at the receiver.
To illustrate a simple example of the problem, assume that the transmitter is transmitting to the receiver a series of sequentially numbered packets, and that prior to receipt of packet 11, the receiver returns a control packet indicating in the associated bit map field that packets 1 through 3, and 5 through 10 were received correctly. Assume that because of the aforementioned propagation delay the transmitter receives the control packet following its transmission of packet 22. At that point, the transmitter retransmits packet 4 and then transmits packet 23 and so on. Upon receipt of packet 20, but prior to receipt of retransmitted packet 4, the receiver sends to the transmitter another control packet indicating in the associated bit map field that packets 1 through 3 and 5 through 20 were received correctly. Upon receipt of the control packet, the transmitter will retransmit packet 4, even though it is likely that the receiver received that packet correctly following its receipt of packet 22.
It can be appreciated that in actual practice the problem is significantly more acute than as presented in the foregoing simple illustration. Therefore, it can also be appreciated that such retransmissions of data packets could significantly degrade the throughput of data packets from a transmitter to a receiver.